package com.tywj.lib.businessweak.widget

/**
 * <pre>
 *     author : June Yang
 *     time   : 2020/05/12
 *     desc   : 多状态布局接口
 *     version: 1.0.0
 * </pre>
 */
interface IStatusLayout {

    companion object{
        /**
         * 内容为空布局
         */
        const val TYPE_EMPTY = 0

        /**
         * 加载出错布局
         */
        const val TYPE_ERROR = 1

        /**
         * 加载中布局
         */
        const val TYPE_LOADING = 2

        /**
         * 实际内容布局
         */
        const val TYPE_CONTENT = 3
    }

    /**
     * 显示内容为空布局
     */
    fun showEmptyLayout()

    /**
     * 显示加载出错布局
     */
    fun showErrorLayout()

    /**
     * 根据服务器返回的错误码显示加载出错布局
     */
    fun showErrorLayoutByCode(code: Int, message: String)

    /**
     * 显示加载中布局
     */
    fun showLoadingLayout()

    /**
     * 显示实际内容布局
     */
    fun showContentLayout()

    /**
     * 设置布局改变监听
     */
    fun setOnLayoutChangeListener(listener: (type: Int) -> Unit)
}